Group communication protocol designed for multicast communication may be used to communicate messages between endpoints forming a group. Communication endpoints can be processes or objects, or any entity that can send and receive messages to/from a group.
However, messages from different senders are conventionally processed in a First In First Out (FIFO) order in a single queue for incoming messages by one thread. The messages are processed sequentially in the order they are received. A bottleneck may thus be formed since every message has to wait for its turn to be processed accordingly.